<?php  
	//******************友情链接模型******************
	class FlinkModel extends Model{
		//定义表名
		public $table = 'flink';
		//保存所有链接缓存的属性
		public $allFlink;

		//自动运行方法
		public function __init(){
			//读取缓存
			$this->allFlink = S('allFlink',false,0,array('dir'=>CACHE_PATH));
		}

		//自动完成
		public $auto = array(
			//1.字段名，2.方法名，3.种类 有可能是function,4.验证条件，5.验证时机
			array('logo','_logo','method',2,1),
			array('addtime','_time','method',2,1)
		);

		public function _logo(){
			if(!empty($_FILES['logo']['name'])){
				//实例化上传类
				$upload = new Upload();
				//获得上传后返回的数组
				$arr = $upload->upload();
				if(!$arr) {
					$this->error = $upload->error;
					return false;
				}
				//转化数组
				$data = current($arr);
				//反出图片路径
				return $data['thumb'];
			}
		}

		public function _time(){
			return time();
		}

		//更新缓存
		public function update_cache(){
			//获得数据
			$data = $this -> get_all();
			//写入缓存 1.缓存名称 2.缓存数据 3.缓存时间 4.缓存路径
			S('allFlink',$data,0,array('dir'=>CACHE_PATH));
		}

		//******************添加链接******************
		public function add_data(){
			$this -> add();
			//更新缓存
			$this -> update_cache();
		}

		//******************编辑链接******************
		public function edit(){
			$fid = Q('get.fid',0,'intcal');
			$this -> where(array('fid'=>$fid)) -> save();
		}

		//******************删除链接******************
		public function del_data($fid){
			//组合where条件
			$where =array('fid'=>$fid);
			//-----------------删除缩略图-----------------
			//获得缩略图
			$thumbPath = $this -> where($where) -> getField('logo');
			//组合完整路径
			$thumbFullPath = ROOT_PATH . $thumbPath;
			//删除缩略图
			unlink($thumbFullPath);
			//获得源图路径
			$sourcePath = str_replace(C('THUMB_ENDFIX'), '', $thumbFullPath);
			//删除源图
			unlink($sourcePath);
			//删除数据
			$this -> where($where) -> delete();
			//更新缓存
			$this -> update_cache();
		}

		//******************获得数据******************
		public function get_data(){
			$fid = Q('get.fid',0,'intval');
			return $this -> where(array('fid'=>$fid)) -> find();
		}

		//获得所有数据
		public function get_all($where=NULL,$field=NULL,$rows=5,$pageNum=3,$pageStyle=2){
			//分页类使用 参数 1.总数，2.每页多少条，3.显示几个页码,4.页码的风格
			//获得数据总数
			$total = $this -> where($where) -> count();
			//实例化分页类
			$page = new Page($total,$rows,$pageNum,$pageStyle);
			//分页显示
			$pageData = $page -> show();
			//获得数据
			$data = $this -> where($where) -> field($field) -> all($page -> limit());
			//将分页压入$data中
			$data['page'] = $pageData;
			return $data;
		}
	}
?>